var ZYRequestClient = require("../../../../utils/zy-request");
var requestClient;
const app = getApp();
Page({
  data:{
    company:null,
    adminList:[],
    showUserDialog:false,
    companyUserList:[],
    checkUserId:0,
    navbarData:{
      showCapsule: 1, //是否显示左上角图标   1表示显示    0表示不显示
      title: '管理员列表', //导航栏 中间的标题
      white:true
     },
     // 导航头的高度
     height: app.globalData.height * 2 + 20
  },
  onLoad() {
    requestClient = new ZYRequestClient();
  },
  // 加载管理员列表
  loadAdminList:function(){
    var _this = this;
    var defaultCompany = wx.getStorageSync('defaultCompany');
    if(defaultCompany){
      _this.setData({
        company:defaultCompany
      });
      var userInfo = wx.getStorageSync('userInfo');
      if(userInfo == ''){
        userInfo = { id:0 };
      }
      requestClient.getUserDefaultCompany(userInfo.id,function(res){
        if(res.data.data.adminList){
          _this.setData({
            adminList:res.data.data.adminList
          });
        } else {
          _this.setData({
            adminList:[]
          });
        }
      });
    } else {
      _this.setData({
        company:null,
        adminList:[]
      });
    }
  },
  // 加载公司所有用户（公司创建者除外）
  loadCompanyAllUserList(){
    var _this = this;
    if(_this.data.company == null){
      _this.setData({
        companyUserList:[]
      });
      return;
    }
    requestClient.getAllUserList(_this.data.company.id,function(res){
        var userList =[];
        for(var i=0;i< res.data.data.length;i++){
            var user = res.data.data[i];
            if(user.id == _this.data.company.belongUser){
              continue;
            }
            userList.push(user);
        }
        _this.setData({
          companyUserList:userList
        });
    });
  },
  onShow(){
    var _this = this;
    requestClient.checkFunctionPermission(3008,'您没有权限操作管理员，请联系企业创建者！',function(){
      _this.loadAdminList();
    },function(){
      wx.navigateBack({
        delta: 1,
      })
    })
  },
  // 显示添加用户选择框
  bindShowUserDialog(e){
    var _this = this;
    requestClient.checkFunctionPermission(3008,'您没有权限添加管理员，请联系企业创建者！',function(){
      var defaultCompany = wx.getStorageSync('defaultCompany');
      if(defaultCompany.authStatus != 1){
        if(_this.data.adminList.length >= 1){
          wx.showModal({
            title:'未认证',
            content:'您的当前的企业没有完成认证，不能添加多个管理员！',
            confirmText:'去认证',
            success(r){
              if(r.confirm){
                wx.navigateTo({
                  url: '../../mine/companydetail/index?companyId=' + defaultCompany.id,
                })
              }
            }
          })
          return;
        }
      }
      _this.setData({
        showUserDialog:true
      });
      _this.loadCompanyAllUserList();
    },function(){
      wx.navigateBack({
        delta: 1,
      })
    })
  },
  // 选择用户
  userCheckboxChange(e){
      var _this = this;
      _this.setData({
        checkUserId: parseInt(e.detail.value)
      });
  },
  // 关闭选择
  bindClosedUser(e){
    this.setData({
      checkUserId:0
    });
  },
  // 确认选择
  bindUserCheck(e){
    var _this = this;
    _this.setData({
      showUserDialog:false
    });
    if(_this.data.checkUserId == 0){
      wx.showToast({
        title: '请选择管理员！',
        icon:"error",
        mask:true
      })
      return ;
    }
    // 构造数据
    let adminData = {
      companyId:_this.data.company.id,
      userId:_this.data.checkUserId
    };
    var _this = this;
    requestClient.checkFunctionPermission(3008,'您没有权限添加管理员，请联系企业创建者！',function(){
      var defaultCompany = wx.getStorageSync('defaultCompany');
      if(defaultCompany.authStatus != 1){
        if(_this.data.adminList.length >= 1){
          wx.showModal({
            title:'未认证',
            content:'您的当前的企业没有完成认证，不能添加多个管理员！',
            confirmText:'去认证',
            success(r){
              if(r.confirm){
                wx.navigateTo({
                  url: '../../mine/companydetail/index?companyId=' + defaultCompany.id,
                })
              }
            }
          })
          return;
        }
      }
      // 添加管理员
      requestClient.addAdminUser(adminData,function(res){
        if(res.data.data){
          wx.showModal({
            title:'添加成功',
            content:'您已经成功添加了此管理员，是否立即设置权限和分配要管理的印章',
            success(r){
              if(r.confirm){
                wx.navigateTo({
                  url: '../admininfo/index?userId=' + adminData.userId + '&companyId=' + adminData.companyId,
                })
              } else {
                _this.loadAdminList();
              }
            }
          })
        } else {
          _this.loadAdminList();
        }
      })
    },function(){
      wx.navigateBack({
        delta: 1,
      })
    })
  },
  // 长按显示操作菜单
  bindUserLongPress(e){
    var _this = this;
    var user = e.currentTarget.dataset.user;
    wx.showActionSheet({
      itemList: ['删除管理员'],
      itemColor:'#ff0000',
      success(e){
        if(e.tapIndex == 0){
          requestClient.checkFunctionPermission(3008,'您没有权限删除管理员，请联系企业创建者！',function(){
            wx.showModal({
              title:'删除管理员',
              content:'您确定要将当前的管理员从此企业移除吗?',
              success(e){
                if(e.confirm){
                  requestClient.removeAdminUser(user.id,_this.data.company.id,function(res){
                    _this.loadAdminList();
                  })
                }
              }
            })
          })
        }
      }
    })
  },
  // 点击跳转管理员信息
  bindUserClick(e){
    var _this = this;
    requestClient.checkFunctionPermission(3008,'您没有权限查询管理员信息，请联系企业创建者！',function(){
      var user = e.currentTarget.dataset.user;
      var userId = user.id;
      var companyId = _this.data.company.id;
      wx.navigateTo({
        url: '../admininfo/index?userId=' + userId + '&companyId=' +companyId,
      })
    })
  }
})
